[VB解题]编写一个程序,求乘积为180,最大公约数为3的数对

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:18:57
单击"查找"按钮,则开始查找并在列表框中显示结果,数据相同的两组数中只取一组,小的数在前面,大的数在后面,如12、15和15、12只取12、15这一对
程序中应包含一个求两个数的最大公约数的过程

Private Sub command1_click()
Dim n1 As Long, n2 As Long
For n1 = 1 To Sqr(180)
If 180 Mod n1 = 0 Then
n2 = 180 / n1
If F(n1, n2) = 3 Then List1.AddItem CStr(n1) & Str(n2)
End If
Next n1
End Sub
Private Function F(ByVal n1 As Integer, ByVal n2 As Integer) As Integer '求最大公约数函数
Dim i As Long, j As Long
If n1 > n2 Then
j = n1: n1 = n2: n2 = j
End If
For i = 1 To n1
If n2 * i Mod n1 = 0 Then
j = n2 * i
Exit For
End If
Next i
F = n1 * n2 / j
End Function